A programmable logic controller or PLC is a special purpose digital computing machine or device used for controlling the operation of an electromechanical system and/or associated process. A detailed software program or set of implementation code specifies the precise manner in which a particular machine or process is to operate, and is compiled and downloaded from a host machine or computer to a memory location aboard the PLC prior to execution. Once the implementation code is downloaded to the PLC, the PLC is switched over to run mode, and the ensuing control sequence is executed automatically until such time as the implementation code is interrupted or stopped.
While a PLC provides notable performance advantages, such as reliability and robustness, the software or implementation code needed for operation thereof is typically proprietary in nature or vendor/platform-specific. That is, implementation code that is uniquely written for execution on hardware provided by Vendor A is ordinarily not readily executable on hardware provided by Vendor B. This general lack of interchangeability or platform flexibility can be detrimental to manufacturers having a diverse base of operations, and in particular to global manufacturers having a hefty prior investment in widely disparate control-related hardware and software throughout its various manufacturing plants and other facilities.
As noted above, PLC implementation code is typically vendor and/or platform-specific, and therefore manufacturers using a particular brand of hardware and/or software are effectively tied to or reliant on a specific vendor for the provision of any hardware and/or software upgrades. As a result, the costs associated with the acquisition and/or ongoing operations and maintenance of a control system can quickly escalate whenever a critical component or software update must be sole-sourced. Likewise, a given manufacturer's ability to quickly and seamlessly adopt new technology can be affected by vendor-specific or sole-source requirements. While some options exist for minimizing the effects of this general lack of flexibility, such as requiring all vendors to follow a single standard, standardizing all equipment and/or software on a single vendor or provider, and/or developing a software-based coupled translator between different vendor platforms, such solutions can be prohibitively expensive or impracticable for existing manufacturers to implement.